<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <ul>
    <li>第1个孩子</li>
    <li>第2个孩子</li>
    <li>第3个孩子</li>
    <li>第4个孩子</li>
    <li>第5个孩子</li>
    <p>我不需要变色</p>
  </ul>
  <!-- 事件委托是利用事件流的特征解决一些开发需求的知识技巧
  优点:减少注册次数,可以提高程序性能
  原理:事件委托其实是利用事件冒泡的特点
     > 给父元素注册事件,当我们触发子元素的时候,会冒泡到父元素身上,从而触发父元素的事件
  实现:事件对象.target.tagName可以获得真正触发事件的元素 -->
  <script>
    // 点击每个小li 当前小li文字变为红色
    // 按照事件委托的方式  委托给父级,事件写到父级身上
    // 1.获得父元素
    const ul = document.querySelector('ul')
    ul.addEventListener('click', function (e) {
      // alert(666)  //默认是事件冒泡
      // this.style.color = 'red'  //全变红色
      // console.dir(e)
      // console.log(e.target)  //就是我们点击的那个对象LI
      // console.dir(e.target)  //就是我们点击的那个对象
      // e.target.style.color = 'red'
      // 我的需求,我们只要点击li才会有效果
      if (e.target.tagName === 'LI') {
        e.target.style.color = 'red'
      }
      if (e.target.tagName === 'P') {
        e.target.style.color = 'yellow'
      }
    })
  </script>
</body>

</html>